package com.lanou3g.code0408.permission;

/**
 * Created by dllo on 18/4/8.
 *
 */

/*
* 权限修饰符，就是用来控制一个类中的属性／方法 是否能被其他类使用
*
* 权限修饰符共有四个：
*
*   public protected  default（啥也不写） private
*
* 在java中，能否访问其他类的属性／方法，分成了以下几种情况
* 1.自己能够访问
* 2.同一个包下的其他类能否访问
* 3.子类能否访问（子类学继承的时候会说）
* 4.任何类能否访问
*
* 一共可以组成以下16中情况：
*         public    protected    default（不写）   private
* 任何类     ✔️         X              X              X
* 子类       ✔️         ✔️             X              X
* 同包       ✔️         ✔️             ✔️              X
* 自己       ✔️         ✔️             ✔️              ✔️
*
* 注：protected 权限用的比较少
*    public和private用的比较多
* */
public class Person {

    String name; // 省略掉了default（但写default会爆红）
    public int age;
    private String gender;

    //改变性别
    public void changeGender(){


        /*
        *
        *  1.private 权限的属性，只能够在当前类中被访问，即只能在当前类中写代码来 对该属性进行值的修改或者读取他的值
        *  2.由于java中想要访问一个对象的属性／方法，需要使用的语法是 对象.属性 ／对象.方法
        *    而在Person这个类中，我们要想改变gender属性的值，又没有办法拿到这个类的对象，所以，java创造了一个关键字：this
        *    this永远指：本类的对象，就是这个类new出来的对象，但是具体指哪个对象，并不确定，哪个对象调用了该方法，this就指这个对象
        *    即：this指 调用该方法的对象
        *
        *  总结：1.this指本类对象
                2.this指调用该方法的对象
        * */

        this.gender = "男";  // gender 是private ，只有自己可以调用；this指的是不确定对象


    }





}
